/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package BoardGameToTreeIntegration.Rules;

import BoardGame.Field;

import MocaTree.Node;

import TGGRuntime.AbstractRule;
import TGGRuntime.IsAppropriateRuleResult;
import TGGRuntime.PerformRuleResult;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Field Rule</b></em>'.
 * <!-- end-user-doc -->
 *
 *
 * @see BoardGameToTreeIntegration.Rules.RulesPackage#getFieldRule()
 * @model
 * @generated
 */
public interface FieldRule extends EObject, AbstractRule {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect translated elements\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0 #//@ownedActivityNode.0/@storyPattern/@linkVariable.1 #//@ownedActivityNode.0/@storyPattern/@linkVariable.2 #//@ownedActivityNode.0/@storyPattern/@linkVariable.3\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"rowNode\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//FieldToNode\"\r\n          name=\"f2n\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"field\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.7\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"solve CSP\"\r\n      outgoing=\"#//@ownedActivityEdge.9\" incoming=\"#//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;Variable&lt;Integer> literal0 = CspFactory.eINSTANCE.createVariable(&quot;literal0&quot;, true, csp);&#xD;&#xA;literal0.setValue(0);&#xD;&#xA;&#xD;&#xA;// Create implicit parameters&#xD;&#xA;Variable&lt;Integer> var_row_y = CspFactory.eINSTANCE.createVariable(&quot;row.y&quot;, true, csp);&#xD;&#xA;var_row_y.setValue(row.getY());&#xD;&#xA;Variable&lt;Integer> var_row_x = CspFactory.eINSTANCE.createVariable(&quot;row.x&quot;, true, csp);&#xD;&#xA;var_row_x.setValue(row.getX());&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;Variable&lt;Integer> var_rowNode_index = CspFactory.eINSTANCE.createVariable(&quot;rowNode.index&quot;, csp);&#xD;&#xA;Variable&lt;Integer> var_field_index = CspFactory.eINSTANCE.createVariable(&quot;field.index&quot;, csp);&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;Integer> eq = new Eq&lt;Integer>();Eq&lt;Integer> eq_0 = new Eq&lt;Integer>();Eq&lt;Integer> eq_1 = new Eq&lt;Integer>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;csp.getConstraints().add(eq_0);&#xD;&#xA;csp.getConstraints().add(eq_1);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.solve(var_row_x,literal0);&#xD;&#xA;eq_0.solve(var_row_y,var_rowNode_index);&#xD;&#xA;eq_1.solve(var_row_x,var_field_index);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"find context\"\r\n      outgoing=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.7\" incoming=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0 #//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1 #//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"board\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"perform transformation\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3 #//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/MocaTree#//TreeElement/index\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_rowNode_index.getValue()\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//FieldToNode\"\r\n          name=\"f2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1 #//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"field\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/MocaTree#//TreeElement/index\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_field_index.getValue()\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.5\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.4\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.5 #//@ownedActivityNode.4/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"board\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.6\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.6\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED000574000A726F772E676574592829\"\r\n            type=\"Integer\" attribute=\"y\" objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED000574000A726F772E676574582829\"\r\n            type=\"Integer\" attribute=\"x\" objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"bookkeeping for edges\"\r\n      outgoing=\"#//@ownedActivityEdge.4\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0 #//@ownedActivityNode.6/@storyPattern/@linkVariable.3 #//@ownedActivityNode.6/@storyPattern/@linkVariable.6 #//@ownedActivityNode.6/@storyPattern/@linkVariable.9 #//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.2 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.11 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"f2n\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.7\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"field\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.8 #//@ownedActivityNode.6/@storyPattern/@linkVariable.10\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2n\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"row__board__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.2 #//@ownedActivityNode.6/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"f2n__source__row\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.3\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;f2n__source__row&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"f2n__target__field\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.6\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.7 #//@ownedActivityNode.6/@storyPattern/@linkVariable.8\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;f2n__target__field&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"field__children__rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.9\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;field__children__rowNode&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__children__rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.13 #//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;root__children__rowNode&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"translatedEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"check\"\r\n      outgoing=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.9\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.8\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.8\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.3\"\r\n      guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.6\" target=\"#//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.9\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.4\"\r\n      guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.1\"\r\n      guard=\"END\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.8\" target=\"#//@ownedActivityNode.9\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.7\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      PerformRuleResult ruleResult = null;\n      FieldToNode f2n = null;\n      Node rowNode = null;\n      Node field = null;\n      Edge f2n__source__row = null;\n      Edge f2n__target__field = null;\n      Edge field__children__rowNode = null;\n      Edge root__children__rowNode = null;\n      Edge row__board__board = null;\n      Node root = null;\n      Iterator fujaba__IterBoardToB2n = null;\n      BoardToNode b2n = null;\n      Board board = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern find context\n      try \n      {\n         fujaba__Success = false; \n\n         // check object row is really bound\n         JavaSDM.ensure ( row != null );\n         // bind object\n         board = row.getBoard ();\n\n         // check object board is really bound\n         JavaSDM.ensure ( board != null );\n\n         // iterate to-many link source from board to b2n\n         fujaba__Success = false;\n\n         fujaba__IterBoardToB2n = new ArrayList(org.moflon.util.eMoflonEMFUtil.getOppositeReference(board,BoardToNode.class,\"source\")).iterator ();\n\n         while ( fujaba__IterBoardToB2n.hasNext () )\n         {\n            try\n            {\n               b2n = (BoardToNode) fujaba__IterBoardToB2n.next ();\n\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // bind object\n               root = b2n.getTarget ();\n\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n\n               // Create CSP\n               CSP csp = CspFactory.eINSTANCE.createCSP();\n\n               // Create literals\n               Variable<Integer> literal0 = CspFactory.eINSTANCE.createVariable(\"literal0\", true, csp);\n               literal0.setValue(0);\n\n               // Create implicit parameters\n               Variable<Integer> var_row_y = CspFactory.eINSTANCE.createVariable(\"row.y\", true, csp);\n               var_row_y.setValue(row.getY());\n               Variable<Integer> var_row_x = CspFactory.eINSTANCE.createVariable(\"row.x\", true, csp);\n               var_row_x.setValue(row.getX());\n\n               // Create explicit parameters\n\n               // Create unbound variables\n               Variable<Integer> var_rowNode_index = CspFactory.eINSTANCE.createVariable(\"rowNode.index\", csp);\n               Variable<Integer> var_field_index = CspFactory.eINSTANCE.createVariable(\"field.index\", csp);\n\n               // Create constraints\n               Eq<Integer> eq = new Eq<Integer>();Eq<Integer> eq_0 = new Eq<Integer>();Eq<Integer> eq_1 = new Eq<Integer>();\n\n               csp.getConstraints().add(eq);\n               csp.getConstraints().add(eq_0);\n               csp.getConstraints().add(eq_1);\n\n               // Solve CSP\n               eq.solve(var_row_x,literal0);\n               eq_0.solve(var_row_y,var_rowNode_index);\n               eq_1.solve(var_row_x,var_field_index);\n\n               fujaba__Success = csp.check();\n               if (fujaba__Success)\n               {\n                  // story pattern perform transformation\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object b2n is really bound\n                     JavaSDM.ensure ( b2n != null );\n                     // check object board is really bound\n                     JavaSDM.ensure ( board != null );\n                     // check object root is really bound\n                     JavaSDM.ensure ( root != null );\n                     // check object row is really bound\n                     JavaSDM.ensure ( row != null );\n                     // check link fields from row to board\n                     JavaSDM.ensure (board.equals (row.getBoard ()\n                     ));\n\n                     // check link source from b2n to board\n                     JavaSDM.ensure (board.equals (b2n.getSource ()\n                     ));\n\n                     // check link target from b2n to root\n                     JavaSDM.ensure (root.equals (b2n.getTarget ()\n                     ));\n\n                     // create object f2n\n                     f2n = BoardGameToTreeIntegrationFactory.eINSTANCE.createFieldToNode();\n                     // create object rowNode\n                     rowNode = MocaTreeFactory.eINSTANCE.createNode();\n                     // create object field\n                     field = MocaTreeFactory.eINSTANCE.createNode();\n                     // assign attribute rowNode\n                     rowNode.setIndex (var_rowNode_index.getValue());\n                     // assign attribute field\n                     field.setIndex (var_field_index.getValue());\n                     // create link\n                     f2n.setSource( row);\n\n                     // create link\n                     field.getChildren().add(rowNode);\n\n                     // create link\n                     root.getChildren().add(rowNode);\n\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(f2n,field,\"target\");\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n                  // story pattern collect translated elements\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object f2n is really bound\n                     JavaSDM.ensure ( f2n != null );\n                     // check object field is really bound\n                     JavaSDM.ensure ( field != null );\n                     // check object row is really bound\n                     JavaSDM.ensure ( row != null );\n                     // check object rowNode is really bound\n                     JavaSDM.ensure ( rowNode != null );\n                     // check object ruleResult is really bound\n                     JavaSDM.ensure ( ruleResult != null );\n                     // check isomorphic binding between objects rowNode and field\n                     JavaSDM.ensure ( !rowNode.equals (field) );\n\n                     // assign attribute ruleResult\n                     ruleResult.setSuccess (true);\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,field,\"createdElements\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,rowNode,\"createdElements\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,row,\"translatedElements\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n,\"createdLinkElements\");\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n                  // story pattern bookkeeping for edges\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object b2n is really bound\n                     JavaSDM.ensure ( b2n != null );\n                     // check object board is really bound\n                     JavaSDM.ensure ( board != null );\n                     // check object f2n is really bound\n                     JavaSDM.ensure ( f2n != null );\n                     // check object field is really bound\n                     JavaSDM.ensure ( field != null );\n                     // check object root is really bound\n                     JavaSDM.ensure ( root != null );\n                     // check object row is really bound\n                     JavaSDM.ensure ( row != null );\n                     // check object rowNode is really bound\n                     JavaSDM.ensure ( rowNode != null );\n                     // check object ruleResult is really bound\n                     JavaSDM.ensure ( ruleResult != null );\n                     // check isomorphic binding between objects board and b2n\n                     JavaSDM.ensure ( !board.equals (b2n) );\n\n                     // check isomorphic binding between objects f2n and b2n\n                     JavaSDM.ensure ( !f2n.equals (b2n) );\n\n                     // check isomorphic binding between objects field and b2n\n                     JavaSDM.ensure ( !field.equals (b2n) );\n\n                     // check isomorphic binding between objects root and b2n\n                     JavaSDM.ensure ( !root.equals (b2n) );\n\n                     // check isomorphic binding between objects row and b2n\n                     JavaSDM.ensure ( !row.equals (b2n) );\n\n                     // check isomorphic binding between objects rowNode and b2n\n                     JavaSDM.ensure ( !rowNode.equals (b2n) );\n\n                     // check isomorphic binding between objects f2n and board\n                     JavaSDM.ensure ( !f2n.equals (board) );\n\n                     // check isomorphic binding between objects field and board\n                     JavaSDM.ensure ( !field.equals (board) );\n\n                     // check isomorphic binding between objects root and board\n                     JavaSDM.ensure ( !root.equals (board) );\n\n                     // check isomorphic binding between objects row and board\n                     JavaSDM.ensure ( !row.equals (board) );\n\n                     // check isomorphic binding between objects rowNode and board\n                     JavaSDM.ensure ( !rowNode.equals (board) );\n\n                     // check isomorphic binding between objects field and f2n\n                     JavaSDM.ensure ( !field.equals (f2n) );\n\n                     // check isomorphic binding between objects root and f2n\n                     JavaSDM.ensure ( !root.equals (f2n) );\n\n                     // check isomorphic binding between objects row and f2n\n                     JavaSDM.ensure ( !row.equals (f2n) );\n\n                     // check isomorphic binding between objects rowNode and f2n\n                     JavaSDM.ensure ( !rowNode.equals (f2n) );\n\n                     // check isomorphic binding between objects root and field\n                     JavaSDM.ensure ( !root.equals (field) );\n\n                     // check isomorphic binding between objects row and field\n                     JavaSDM.ensure ( !row.equals (field) );\n\n                     // check isomorphic binding between objects rowNode and field\n                     JavaSDM.ensure ( !rowNode.equals (field) );\n\n                     // check isomorphic binding between objects row and root\n                     JavaSDM.ensure ( !row.equals (root) );\n\n                     // check isomorphic binding between objects rowNode and root\n                     JavaSDM.ensure ( !rowNode.equals (root) );\n\n                     // check isomorphic binding between objects rowNode and row\n                     JavaSDM.ensure ( !rowNode.equals (row) );\n\n                     // create object f2n__source__row\n                     f2n__source__row = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object f2n__target__field\n                     f2n__target__field = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object field__children__rowNode\n                     field__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object root__children__rowNode\n                     root__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object row__board__board\n                     row__board__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // assign attribute row__board__board\n                     row__board__board.setName (\"board\");\n                     // assign attribute f2n__source__row\n                     f2n__source__row.setName (\"f2n__source__row\");\n                     // assign attribute f2n__target__field\n                     f2n__target__field.setName (\"f2n__target__field\");\n                     // assign attribute field__children__rowNode\n                     field__children__rowNode.setName (\"field__children__rowNode\");\n                     // assign attribute root__children__rowNode\n                     root__children__rowNode.setName (\"root__children__rowNode\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n__source__row,\"createdEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n__target__field,\"createdEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,field__children__rowNode,\"createdEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root__children__rowNode,\"createdEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,row__board__board,\"translatedEdges\");\n                     // create link\n                     f2n__source__row.setTrg( row);\n\n                     // create link\n                     row__board__board.setSrc( row);\n\n                     // create link\n                     field__children__rowNode.setTrg( rowNode);\n\n                     // create link\n                     root__children__rowNode.setTrg( rowNode);\n\n                     // create link\n                     f2n__source__row.setSrc( f2n);\n\n                     // create link\n                     f2n__target__field.setSrc( f2n);\n\n                     // create link\n                     row__board__board.setTrg( board);\n\n                     // create link\n                     f2n__target__field.setTrg( field);\n\n                     // create link\n                     field__children__rowNode.setSrc( field);\n\n                     // create link\n                     root__children__rowNode.setSrc( root);\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n                  return ruleResult;\n\n               }\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	PerformRuleResult perform_FWD_Field_0(Field row);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"set success\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.1\" incoming=\"#//@ownedActivityEdge.2\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EOperation\"\r\n          name=\"performOperation\" incomingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1 #//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"SDMLanguage.expressions:ComparisonExpression\"\r\n              operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\"\r\n                value=\"&quot;perform_FWD_Field_0&quot;\"/>\r\n            <leftExpression xsi:type=\"SDMLanguage.patterns.patternExpressions:AttributeValueExpression\"\r\n                object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" attribute=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass\"\r\n          name=\"eClass\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <bindingExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect elements to be translated\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.3\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.1\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"row__board__null\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.3\"\r\n          outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.2 #//@ownedActivityNode.2/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"test core match\"\r\n      outgoing=\"#//@ownedActivityEdge.4 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"board\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect context nodes\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"contextElements\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.4\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.1\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.5\" target=\"#//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.0\"\r\n      guard=\"END\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleResult = null;\n      Match match = null;\n      Edge row__board__null = null;\n      Board board = null;\n      Iterator fujaba__IterRuleResultToMatch = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_FWD_Field_0\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         // create link\n         ruleResult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern test core match\n      try \n      {\n         fujaba__Success = false; \n\n         // check object row is really bound\n         JavaSDM.ensure ( row != null );\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // bind object\n         board = row.getBoard ();\n\n         // check object board is really bound\n         JavaSDM.ensure ( board != null );\n\n         // create object match\n         match = TGGRuntimeFactory.eINSTANCE.createMatch();\n         // create link\n         ruleResult.getMatches().add(match);\n\n         // story pattern collect elements to be translated\n         try \n         {\n            fujaba__Success = false; \n\n            // check object board is really bound\n            JavaSDM.ensure ( board != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // check object row is really bound\n            JavaSDM.ensure ( row != null );\n            // create object row__board__null\n            row__board__null = TGGRuntimeFactory.eINSTANCE.createEdge();\n            // assign attribute row__board__null\n            row__board__null.setName (\"board\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,row,\"toBeTranslatedElements\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,row__board__null,\"toBeTranslatedEdges\");\n            // create link\n            row__board__null.setSrc( row);\n\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(row__board__null,board,\"trg\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // story pattern collect context nodes\n         try \n         {\n            fujaba__Success = false; \n\n            // check object board is really bound\n            JavaSDM.ensure ( board != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,board,\"contextElements\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern set success\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // iterate to-many link matches from ruleResult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleResultToMatch = ruleResult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleResultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleResultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleResult\n         ruleResult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_FWD_Field_0(Field row);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect translated elements\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0 #//@ownedActivityNode.0/@storyPattern/@linkVariable.1 #//@ownedActivityNode.0/@storyPattern/@linkVariable.2 #//@ownedActivityNode.0/@storyPattern/@linkVariable.3\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"rowNode\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//FieldToNode\"\r\n          name=\"f2n\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"field\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.7\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"solve CSP\"\r\n      outgoing=\"#//@ownedActivityEdge.9\" incoming=\"#//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;Variable&lt;Integer> literal0 = CspFactory.eINSTANCE.createVariable(&quot;literal0&quot;, true, csp);&#xD;&#xA;literal0.setValue(0);&#xD;&#xA;&#xD;&#xA;// Create implicit parameters&#xD;&#xA;Variable&lt;Integer> var_rowNode_index = CspFactory.eINSTANCE.createVariable(&quot;rowNode.index&quot;, true, csp);&#xD;&#xA;var_rowNode_index.setValue(rowNode.getIndex());&#xD;&#xA;Variable&lt;Integer> var_field_index = CspFactory.eINSTANCE.createVariable(&quot;field.index&quot;, true, csp);&#xD;&#xA;var_field_index.setValue(field.getIndex());&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;Variable&lt;Integer> var_row_y = CspFactory.eINSTANCE.createVariable(&quot;row.y&quot;, csp);&#xD;&#xA;Variable&lt;Integer> var_row_x = CspFactory.eINSTANCE.createVariable(&quot;row.x&quot;, csp);&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;Integer> eq = new Eq&lt;Integer>();Eq&lt;Integer> eq_0 = new Eq&lt;Integer>();Eq&lt;Integer> eq_1 = new Eq&lt;Integer>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;csp.getConstraints().add(eq_0);&#xD;&#xA;csp.getConstraints().add(eq_1);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.solve(var_row_y,var_rowNode_index);&#xD;&#xA;eq_0.solve(var_row_x,var_field_index);&#xD;&#xA;eq_1.solve(var_row_x,literal0);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"find context\"\r\n      outgoing=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.7\" incoming=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0 #//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.3\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"field\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2 #//@ownedActivityNode.3/@storyPattern/@linkVariable.3\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"perform transformation\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/BoardGame#//Field/y\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_row_y.getValue()\"/>\r\n        </attributeAssignment>\r\n        <attributeAssignment attribute=\"http://www.moflon.org/BoardGame#//Field/x\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_row_x.getValue()\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3 #//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//FieldToNode\"\r\n          name=\"f2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1 #//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"field\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.5\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.4\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.5 #//@ownedActivityNode.4/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"board\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.5\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.6\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.6\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED0005740012726F774E6F64652E676574496E6465782829\"\r\n            type=\"Integer\" attribute=\"index\" objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED00057400106669656C642E676574496E6465782829\"\r\n            type=\"Integer\" attribute=\"index\" objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"bookkeeping for edges\"\r\n      outgoing=\"#//@ownedActivityEdge.4\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0 #//@ownedActivityNode.6/@storyPattern/@linkVariable.3 #//@ownedActivityNode.6/@storyPattern/@linkVariable.6 #//@ownedActivityNode.6/@storyPattern/@linkVariable.9 #//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"f2n\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.7\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"field\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.8 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2n\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"row__board__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;row__board__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"f2n__source__row\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.3\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;f2n__source__row&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"f2n__target__field\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.6\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.7 #//@ownedActivityNode.6/@storyPattern/@linkVariable.8\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;f2n__target__field&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"field__children__rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.9\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.11 #//@ownedActivityNode.6/@storyPattern/@linkVariable.10\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__children__rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.14 #//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"check\"\r\n      outgoing=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.9\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.8\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.8\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.3\"\r\n      guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.6\" target=\"#//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.9\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.4\"\r\n      guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.1\"\r\n      guard=\"END\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.8\" target=\"#//@ownedActivityNode.9\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.7\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      PerformRuleResult ruleResult = null;\n      Field row = null;\n      FieldToNode f2n = null;\n      Edge f2n__source__row = null;\n      Edge row__board__board = null;\n      Edge field__children__rowNode = null;\n      Edge root__children__rowNode = null;\n      Edge f2n__target__field = null;\n      Board board = null;\n      Iterator fujaba__IterRootToB2n = null;\n      BoardToNode b2n = null;\n      Node root = null;\n      Node field = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern find context\n      try \n      {\n         fujaba__Success = false; \n\n         // check object rowNode is really bound\n         JavaSDM.ensure ( rowNode != null );\n         // bind object\n         field = rowNode.getParentNode ();\n\n         // check object field is really bound\n         JavaSDM.ensure ( field != null );\n\n         // check isomorphic binding between objects rowNode and field\n         JavaSDM.ensure ( !rowNode.equals (field) );\n\n         // bind object\n         root = rowNode.getParentNode ();\n\n         // check object root is really bound\n         JavaSDM.ensure ( root != null );\n\n         // check isomorphic binding between objects root and field\n         JavaSDM.ensure ( !root.equals (field) );\n\n         // check isomorphic binding between objects rowNode and root\n         JavaSDM.ensure ( !rowNode.equals (root) );\n\n         // iterate to-many link target from root to b2n\n         fujaba__Success = false;\n\n         fujaba__IterRootToB2n = new ArrayList(org.moflon.util.eMoflonEMFUtil.getOppositeReference(root,BoardToNode.class,\"target\")).iterator ();\n\n         while ( fujaba__IterRootToB2n.hasNext () )\n         {\n            try\n            {\n               b2n = (BoardToNode) fujaba__IterRootToB2n.next ();\n\n               // check object b2n is really bound\n               JavaSDM.ensure ( b2n != null );\n               // bind object\n               board = b2n.getSource ();\n\n               // check object board is really bound\n               JavaSDM.ensure ( board != null );\n\n               // Create CSP\n               CSP csp = CspFactory.eINSTANCE.createCSP();\n\n               // Create literals\n               Variable<Integer> literal0 = CspFactory.eINSTANCE.createVariable(\"literal0\", true, csp);\n               literal0.setValue(0);\n\n               // Create implicit parameters\n               Variable<Integer> var_rowNode_index = CspFactory.eINSTANCE.createVariable(\"rowNode.index\", true, csp);\n               var_rowNode_index.setValue(rowNode.getIndex());\n               Variable<Integer> var_field_index = CspFactory.eINSTANCE.createVariable(\"field.index\", true, csp);\n               var_field_index.setValue(field.getIndex());\n\n               // Create explicit parameters\n\n               // Create unbound variables\n               Variable<Integer> var_row_y = CspFactory.eINSTANCE.createVariable(\"row.y\", csp);\n               Variable<Integer> var_row_x = CspFactory.eINSTANCE.createVariable(\"row.x\", csp);\n\n               // Create constraints\n               Eq<Integer> eq = new Eq<Integer>();Eq<Integer> eq_0 = new Eq<Integer>();Eq<Integer> eq_1 = new Eq<Integer>();\n\n               csp.getConstraints().add(eq);\n               csp.getConstraints().add(eq_0);\n               csp.getConstraints().add(eq_1);\n\n               // Solve CSP\n               eq.solve(var_row_y,var_rowNode_index);\n               eq_0.solve(var_row_x,var_field_index);\n               eq_1.solve(var_row_x,literal0);\n\n               fujaba__Success = csp.check();\n               if (fujaba__Success)\n               {\n                  // story pattern perform transformation\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object b2n is really bound\n                     JavaSDM.ensure ( b2n != null );\n                     // check object board is really bound\n                     JavaSDM.ensure ( board != null );\n                     // check object field is really bound\n                     JavaSDM.ensure ( field != null );\n                     // check object root is really bound\n                     JavaSDM.ensure ( root != null );\n                     // check object rowNode is really bound\n                     JavaSDM.ensure ( rowNode != null );\n                     // check isomorphic binding between objects root and field\n                     JavaSDM.ensure ( !root.equals (field) );\n\n                     // check isomorphic binding between objects rowNode and field\n                     JavaSDM.ensure ( !rowNode.equals (field) );\n\n                     // check isomorphic binding between objects rowNode and root\n                     JavaSDM.ensure ( !rowNode.equals (root) );\n\n                     // check link children from rowNode to field\n                     JavaSDM.ensure (field.equals (rowNode.getParentNode ()\n                     ));\n\n                     // check link children from rowNode to root\n                     JavaSDM.ensure (root.equals (rowNode.getParentNode ()\n                     ));\n\n                     // check link source from b2n to board\n                     JavaSDM.ensure (board.equals (b2n.getSource ()\n                     ));\n\n                     // check link target from b2n to root\n                     JavaSDM.ensure (root.equals (b2n.getTarget ()\n                     ));\n\n                     // create object row\n                     row = BoardGameFactory.eINSTANCE.createField();\n                     // create object f2n\n                     f2n = BoardGameToTreeIntegrationFactory.eINSTANCE.createFieldToNode();\n                     // assign attribute row\n                     row.setY (var_row_y.getValue());\n                     // assign attribute row\n                     row.setX (var_row_x.getValue());\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(f2n,field,\"target\");\n                     // create link\n                     f2n.setSource( row);\n\n                     // create link\n                     board.getFields().add(row);\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n                  // story pattern collect translated elements\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object f2n is really bound\n                     JavaSDM.ensure ( f2n != null );\n                     // check object field is really bound\n                     JavaSDM.ensure ( field != null );\n                     // check object row is really bound\n                     JavaSDM.ensure ( row != null );\n                     // check object rowNode is really bound\n                     JavaSDM.ensure ( rowNode != null );\n                     // check object ruleResult is really bound\n                     JavaSDM.ensure ( ruleResult != null );\n                     // check isomorphic binding between objects rowNode and field\n                     JavaSDM.ensure ( !rowNode.equals (field) );\n\n                     // assign attribute ruleResult\n                     ruleResult.setSuccess (true);\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,rowNode,\"translatedElements\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,row,\"createdElements\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,field,\"translatedElements\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n,\"createdLinkElements\");\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n                  // story pattern bookkeeping for edges\n                  try \n                  {\n                     fujaba__Success = false; \n\n                     // check object b2n is really bound\n                     JavaSDM.ensure ( b2n != null );\n                     // check object board is really bound\n                     JavaSDM.ensure ( board != null );\n                     // check object f2n is really bound\n                     JavaSDM.ensure ( f2n != null );\n                     // check object field is really bound\n                     JavaSDM.ensure ( field != null );\n                     // check object root is really bound\n                     JavaSDM.ensure ( root != null );\n                     // check object row is really bound\n                     JavaSDM.ensure ( row != null );\n                     // check object rowNode is really bound\n                     JavaSDM.ensure ( rowNode != null );\n                     // check object ruleResult is really bound\n                     JavaSDM.ensure ( ruleResult != null );\n                     // check isomorphic binding between objects board and b2n\n                     JavaSDM.ensure ( !board.equals (b2n) );\n\n                     // check isomorphic binding between objects f2n and b2n\n                     JavaSDM.ensure ( !f2n.equals (b2n) );\n\n                     // check isomorphic binding between objects field and b2n\n                     JavaSDM.ensure ( !field.equals (b2n) );\n\n                     // check isomorphic binding between objects root and b2n\n                     JavaSDM.ensure ( !root.equals (b2n) );\n\n                     // check isomorphic binding between objects row and b2n\n                     JavaSDM.ensure ( !row.equals (b2n) );\n\n                     // check isomorphic binding between objects rowNode and b2n\n                     JavaSDM.ensure ( !rowNode.equals (b2n) );\n\n                     // check isomorphic binding between objects f2n and board\n                     JavaSDM.ensure ( !f2n.equals (board) );\n\n                     // check isomorphic binding between objects field and board\n                     JavaSDM.ensure ( !field.equals (board) );\n\n                     // check isomorphic binding between objects root and board\n                     JavaSDM.ensure ( !root.equals (board) );\n\n                     // check isomorphic binding between objects row and board\n                     JavaSDM.ensure ( !row.equals (board) );\n\n                     // check isomorphic binding between objects rowNode and board\n                     JavaSDM.ensure ( !rowNode.equals (board) );\n\n                     // check isomorphic binding between objects field and f2n\n                     JavaSDM.ensure ( !field.equals (f2n) );\n\n                     // check isomorphic binding between objects root and f2n\n                     JavaSDM.ensure ( !root.equals (f2n) );\n\n                     // check isomorphic binding between objects row and f2n\n                     JavaSDM.ensure ( !row.equals (f2n) );\n\n                     // check isomorphic binding between objects rowNode and f2n\n                     JavaSDM.ensure ( !rowNode.equals (f2n) );\n\n                     // check isomorphic binding between objects root and field\n                     JavaSDM.ensure ( !root.equals (field) );\n\n                     // check isomorphic binding between objects row and field\n                     JavaSDM.ensure ( !row.equals (field) );\n\n                     // check isomorphic binding between objects rowNode and field\n                     JavaSDM.ensure ( !rowNode.equals (field) );\n\n                     // check isomorphic binding between objects row and root\n                     JavaSDM.ensure ( !row.equals (root) );\n\n                     // check isomorphic binding between objects rowNode and root\n                     JavaSDM.ensure ( !rowNode.equals (root) );\n\n                     // check isomorphic binding between objects rowNode and row\n                     JavaSDM.ensure ( !rowNode.equals (row) );\n\n                     // create object f2n__source__row\n                     f2n__source__row = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object row__board__board\n                     row__board__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object field__children__rowNode\n                     field__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object root__children__rowNode\n                     root__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // create object f2n__target__field\n                     f2n__target__field = TGGRuntimeFactory.eINSTANCE.createEdge();\n                     // assign attribute row__board__board\n                     row__board__board.setName (\"row__board__board\");\n                     // assign attribute f2n__source__row\n                     f2n__source__row.setName (\"f2n__source__row\");\n                     // assign attribute f2n__target__field\n                     f2n__target__field.setName (\"f2n__target__field\");\n                     // assign attribute field__children__rowNode\n                     field__children__rowNode.setName (\"children\");\n                     // assign attribute root__children__rowNode\n                     root__children__rowNode.setName (\"children\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n__source__row,\"createdEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,row__board__board,\"createdEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,field__children__rowNode,\"translatedEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root__children__rowNode,\"translatedEdges\");\n                     // create link\n                     org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n__target__field,\"createdEdges\");\n                     // create link\n                     f2n__source__row.setTrg( row);\n\n                     // create link\n                     row__board__board.setSrc( row);\n\n                     // create link\n                     field__children__rowNode.setTrg( rowNode);\n\n                     // create link\n                     root__children__rowNode.setTrg( rowNode);\n\n                     // create link\n                     f2n__target__field.setSrc( f2n);\n\n                     // create link\n                     f2n__source__row.setSrc( f2n);\n\n                     // create link\n                     row__board__board.setTrg( board);\n\n                     // create link\n                     field__children__rowNode.setSrc( field);\n\n                     // create link\n                     f2n__target__field.setTrg( field);\n\n                     // create link\n                     root__children__rowNode.setSrc( root);\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n\n                  return ruleResult;\n\n               }\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	PerformRuleResult perform_BWD_Node_1(Node rowNode);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"set success\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.1\" incoming=\"#//@ownedActivityEdge.2\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EOperation\"\r\n          name=\"performOperation\" incomingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1 #//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"SDMLanguage.expressions:ComparisonExpression\"\r\n              operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\"\r\n                value=\"&quot;perform_BWD_Node_1&quot;\"/>\r\n            <leftExpression xsi:type=\"SDMLanguage.patterns.patternExpressions:AttributeValueExpression\"\r\n                object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" attribute=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass\"\r\n          name=\"eClass\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <bindingExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect elements to be translated\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.4 #//@ownedActivityNode.2/@storyPattern/@linkVariable.7\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"rowNode\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.3 #//@ownedActivityNode.2/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"field\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"field__children__rowNode\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.4\"\r\n          outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.3 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.5\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"null__children__rowNode\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.7\"\r\n          outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.6 #//@ownedActivityNode.2/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"test core match\"\r\n      outgoing=\"#//@ownedActivityEdge.4 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0 #//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"field\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect context nodes\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"contextElements\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.4\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.1\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.5\" target=\"#//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.0\"\r\n      guard=\"END\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleResult = null;\n      Match match = null;\n      Edge field__children__rowNode = null;\n      Edge null__children__rowNode = null;\n      Node root = null;\n      Node field = null;\n      Iterator fujaba__IterRuleResultToMatch = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_BWD_Node_1\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         // create link\n         ruleResult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern test core match\n      try \n      {\n         fujaba__Success = false; \n\n         // check object rowNode is really bound\n         JavaSDM.ensure ( rowNode != null );\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // bind object\n         field = rowNode.getParentNode ();\n\n         // check object field is really bound\n         JavaSDM.ensure ( field != null );\n\n         // check isomorphic binding between objects rowNode and field\n         JavaSDM.ensure ( !rowNode.equals (field) );\n\n         // bind object\n         root = rowNode.getParentNode ();\n\n         // check object root is really bound\n         JavaSDM.ensure ( root != null );\n\n         // check isomorphic binding between objects root and field\n         JavaSDM.ensure ( !root.equals (field) );\n\n         // check isomorphic binding between objects rowNode and root\n         JavaSDM.ensure ( !rowNode.equals (root) );\n\n         // create object match\n         match = TGGRuntimeFactory.eINSTANCE.createMatch();\n         // create link\n         ruleResult.getMatches().add(match);\n\n         // story pattern collect elements to be translated\n         try \n         {\n            fujaba__Success = false; \n\n            // check object field is really bound\n            JavaSDM.ensure ( field != null );\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // check object root is really bound\n            JavaSDM.ensure ( root != null );\n            // check object rowNode is really bound\n            JavaSDM.ensure ( rowNode != null );\n            // check isomorphic binding between objects root and field\n            JavaSDM.ensure ( !root.equals (field) );\n\n            // check isomorphic binding between objects rowNode and field\n            JavaSDM.ensure ( !rowNode.equals (field) );\n\n            // check isomorphic binding between objects rowNode and root\n            JavaSDM.ensure ( !rowNode.equals (root) );\n\n            // create object field__children__rowNode\n            field__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n            // create object null__children__rowNode\n            null__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n            // assign attribute field__children__rowNode\n            field__children__rowNode.setName (\"children\");\n            // assign attribute null__children__rowNode\n            null__children__rowNode.setName (\"children\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,field__children__rowNode,\"toBeTranslatedEdges\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,null__children__rowNode,\"toBeTranslatedEdges\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,rowNode,\"toBeTranslatedElements\");\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,field,\"toBeTranslatedElements\");\n            // create link\n            null__children__rowNode.setTrg( rowNode);\n\n            // create link\n            field__children__rowNode.setTrg( rowNode);\n\n            // create link\n            field__children__rowNode.setSrc( field);\n\n            // create link\n            null__children__rowNode.setSrc( root);\n\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n         // story pattern collect context nodes\n         try \n         {\n            fujaba__Success = false; \n\n            // check object match is really bound\n            JavaSDM.ensure ( match != null );\n            // check object root is really bound\n            JavaSDM.ensure ( root != null );\n            // create link\n            org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,root,\"contextElements\");\n            fujaba__Success = true;\n         }\n         catch ( JavaSDMException fujaba__InternalException )\n         {\n            fujaba__Success = false;\n         }\n\n\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern set success\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // iterate to-many link matches from ruleResult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleResultToMatch = ruleResult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleResultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleResultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleResult\n         ruleResult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_BWD_Node_1(Node rowNode);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect translated elements\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0 #//@ownedActivityNode.0/@storyPattern/@linkVariable.1 #//@ownedActivityNode.0/@storyPattern/@linkVariable.2 #//@ownedActivityNode.0/@storyPattern/@linkVariable.3\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"rowNode\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.1\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//FieldToNode\"\r\n          name=\"f2n\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"field\"\r\n          incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"createdElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdLinkElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedElements\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.7\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"solve CSP\"\r\n      outgoing=\"#//@ownedActivityEdge.9\" incoming=\"#//@ownedActivityEdge.1\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"// Create CSP&#xD;&#xA;CSP csp = CspFactory.eINSTANCE.createCSP();&#xD;&#xA;&#xD;&#xA;// Create literals&#xD;&#xA;Variable&lt;Integer> literal0 = CspFactory.eINSTANCE.createVariable(&quot;literal0&quot;, true, csp);&#xD;&#xA;literal0.setValue(0);&#xD;&#xA;&#xD;&#xA;// Create implicit parameters&#xD;&#xA;Variable&lt;Integer> var_rowNode_index = CspFactory.eINSTANCE.createVariable(&quot;rowNode.index&quot;, true, csp);&#xD;&#xA;var_rowNode_index.setValue(rowNode.getIndex());&#xD;&#xA;Variable&lt;Integer> var_field_index = CspFactory.eINSTANCE.createVariable(&quot;field.index&quot;, true, csp);&#xD;&#xA;var_field_index.setValue(field.getIndex());&#xD;&#xA;&#xD;&#xA;// Create explicit parameters&#xD;&#xA;&#xD;&#xA;// Create unbound variables&#xD;&#xA;Variable&lt;Integer> var_row_y = CspFactory.eINSTANCE.createVariable(&quot;row.y&quot;, csp);&#xD;&#xA;Variable&lt;Integer> var_row_x = CspFactory.eINSTANCE.createVariable(&quot;row.x&quot;, csp);&#xD;&#xA;&#xD;&#xA;// Create constraints&#xD;&#xA;Eq&lt;Integer> eq = new Eq&lt;Integer>();Eq&lt;Integer> eq_0 = new Eq&lt;Integer>();Eq&lt;Integer> eq_1 = new Eq&lt;Integer>();&#xD;&#xA;&#xD;&#xA;csp.getConstraints().add(eq);&#xD;&#xA;csp.getConstraints().add(eq_0);&#xD;&#xA;csp.getConstraints().add(eq_1);&#xD;&#xA;&#xD;&#xA;// Solve CSP&#xD;&#xA;eq.solve(var_row_y,var_rowNode_index);&#xD;&#xA;eq_0.solve(var_row_x,var_field_index);&#xD;&#xA;eq_1.solve(var_row_x,literal0);&#xD;&#xA;\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"find context\"\r\n      outgoing=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.7\" incoming=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0 #//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.3\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"field\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2 #//@ownedActivityNode.3/@storyPattern/@linkVariable.3\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"perform transformation\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Field\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/BoardGame#//Field/y\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_row_y.getValue()\"/>\r\n        </attributeAssignment>\r\n        <attributeAssignment attribute=\"http://www.moflon.org/BoardGame#//Field/x\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"var_row_x.getValue()\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3 #//@ownedActivityNode.4/@storyPattern/@linkVariable.4\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//FieldToNode\"\r\n          name=\"f2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.1 #//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGame#//Board\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0 #//@ownedActivityNode.4/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"field\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.2\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.3\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.5\"\r\n          outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.4\" bindingState=\"BOUND\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/BoardGameToTreeIntegration#//BoardToNode\"\r\n          name=\"b2n\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.5 #//@ownedActivityNode.4/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"board\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.2\" bindingOperator=\"CREATE\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.4\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.5\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"target\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.6\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"source\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.6\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.4/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.4/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED0005740012726F774E6F64652E676574496E6465782829\"\r\n            type=\"Integer\" attribute=\"index\" objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" bound=\"true\" value=\"ACED00057400106669656C642E676574496E6465782829\"\r\n            type=\"Integer\" attribute=\"index\" objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.9/@storyPattern/@objectVariable.0\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"bookkeeping for edges\"\r\n      outgoing=\"#//@ownedActivityEdge.4\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0 #//@ownedActivityNode.6/@storyPattern/@linkVariable.3 #//@ownedActivityNode.6/@storyPattern/@linkVariable.6 #//@ownedActivityNode.6/@storyPattern/@linkVariable.9 #//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"row\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.10 #//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"f2n\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.7\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"field\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.8 #//@ownedActivityNode.6/@storyPattern/@linkVariable.11\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"root\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.14\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject\"\r\n          name=\"b2n\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"row__board__board\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.0\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.1 #//@ownedActivityNode.6/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;row__board__board&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"f2n__source__row\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.3\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.4 #//@ownedActivityNode.6/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;f2n__source__row&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"f2n__target__field\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.6\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.7 #//@ownedActivityNode.6/@storyPattern/@linkVariable.8\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;f2n__target__field&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"field__children__rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.9\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.11 #//@ownedActivityNode.6/@storyPattern/@linkVariable.10\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"root__children__rowNode\" incomingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.12\"\r\n          outgoingLink=\"#//@ownedActivityNode.6/@storyPattern/@linkVariable.14 #//@ownedActivityNode.6/@storyPattern/@linkVariable.13\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.8\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.9\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"createdEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.10\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.11\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"translatedEdges\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.6\"\r\n          source=\"#//@ownedActivityNode.6/@storyPattern/@objectVariable.12\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StatementNode\" name=\"check\"\r\n      outgoing=\"#//@ownedActivityEdge.2 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.9\">\r\n    <statementExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"csp.check();\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.8\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.8\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//PerformRuleResult\"\r\n          name=\"ruleResult\" bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.0\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.3\"\r\n      guard=\"FAILURE\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.6\" target=\"#//@ownedActivityNode.5\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.9\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.7\" target=\"#//@ownedActivityNode.4\"\r\n      guard=\"SUCCESS\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.1\"\r\n      guard=\"END\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.8\" target=\"#//@ownedActivityNode.9\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.7\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      PerformRuleResult ruleResult = null;\n      Field row = null;\n      FieldToNode f2n = null;\n      Edge f2n__source__row = null;\n      Edge root__children__rowNode = null;\n      Edge f2n__target__field = null;\n      Edge row__board__board = null;\n      Edge field__children__rowNode = null;\n      Board board = null;\n      Iterator fujaba__IterRootToB2n = null;\n      BoardToNode b2n = null;\n      Node root = null;\n      Iterator fujaba__IterFieldToRowNode = null;\n      Object _TmpObject = null;\n      Node rowNode = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createPerformRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern find context\n      try \n      {\n         fujaba__Success = false; \n\n         // check object field is really bound\n         JavaSDM.ensure ( field != null );\n         // iterate to-many link children from field to rowNode\n         fujaba__Success = false;\n\n         fujaba__IterFieldToRowNode = new ArrayList(field.getChildren()).iterator ();\n\n         while ( fujaba__IterFieldToRowNode.hasNext () )\n         {\n            try\n            {\n               _TmpObject =  fujaba__IterFieldToRowNode.next ();\n\n               // ensure correct type and really bound of object rowNode\n               JavaSDM.ensure ( _TmpObject instanceof Node );\n               rowNode = (Node) _TmpObject;\n\n               // check isomorphic binding between objects rowNode and field\n               JavaSDM.ensure ( !rowNode.equals (field) );\n\n               // bind object\n               root = rowNode.getParentNode ();\n\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n\n               // check isomorphic binding between objects root and field\n               JavaSDM.ensure ( !root.equals (field) );\n\n               // check isomorphic binding between objects rowNode and root\n               JavaSDM.ensure ( !rowNode.equals (root) );\n\n               // iterate to-many link target from root to b2n\n               fujaba__Success = false;\n\n               fujaba__IterRootToB2n = new ArrayList(org.moflon.util.eMoflonEMFUtil.getOppositeReference(root,BoardToNode.class,\"target\")).iterator ();\n\n               while ( fujaba__IterRootToB2n.hasNext () )\n               {\n                  try\n                  {\n                     b2n = (BoardToNode) fujaba__IterRootToB2n.next ();\n\n                     // check object b2n is really bound\n                     JavaSDM.ensure ( b2n != null );\n                     // bind object\n                     board = b2n.getSource ();\n\n                     // check object board is really bound\n                     JavaSDM.ensure ( board != null );\n\n                     // Create CSP\n                     CSP csp = CspFactory.eINSTANCE.createCSP();\n\n                     // Create literals\n                     Variable<Integer> literal0 = CspFactory.eINSTANCE.createVariable(\"literal0\", true, csp);\n                     literal0.setValue(0);\n\n                     // Create implicit parameters\n                     Variable<Integer> var_rowNode_index = CspFactory.eINSTANCE.createVariable(\"rowNode.index\", true, csp);\n                     var_rowNode_index.setValue(rowNode.getIndex());\n                     Variable<Integer> var_field_index = CspFactory.eINSTANCE.createVariable(\"field.index\", true, csp);\n                     var_field_index.setValue(field.getIndex());\n\n                     // Create explicit parameters\n\n                     // Create unbound variables\n                     Variable<Integer> var_row_y = CspFactory.eINSTANCE.createVariable(\"row.y\", csp);\n                     Variable<Integer> var_row_x = CspFactory.eINSTANCE.createVariable(\"row.x\", csp);\n\n                     // Create constraints\n                     Eq<Integer> eq = new Eq<Integer>();Eq<Integer> eq_0 = new Eq<Integer>();Eq<Integer> eq_1 = new Eq<Integer>();\n\n                     csp.getConstraints().add(eq);\n                     csp.getConstraints().add(eq_0);\n                     csp.getConstraints().add(eq_1);\n\n                     // Solve CSP\n                     eq.solve(var_row_y,var_rowNode_index);\n                     eq_0.solve(var_row_x,var_field_index);\n                     eq_1.solve(var_row_x,literal0);\n\n                     fujaba__Success = csp.check();\n                     if (fujaba__Success)\n                     {\n                        // story pattern perform transformation\n                        try \n                        {\n                           fujaba__Success = false; \n\n                           // check object b2n is really bound\n                           JavaSDM.ensure ( b2n != null );\n                           // check object board is really bound\n                           JavaSDM.ensure ( board != null );\n                           // check object field is really bound\n                           JavaSDM.ensure ( field != null );\n                           // check object root is really bound\n                           JavaSDM.ensure ( root != null );\n                           // check object rowNode is really bound\n                           JavaSDM.ensure ( rowNode != null );\n                           // check isomorphic binding between objects root and field\n                           JavaSDM.ensure ( !root.equals (field) );\n\n                           // check isomorphic binding between objects rowNode and field\n                           JavaSDM.ensure ( !rowNode.equals (field) );\n\n                           // check isomorphic binding between objects rowNode and root\n                           JavaSDM.ensure ( !rowNode.equals (root) );\n\n                           // check link children from rowNode to field\n                           JavaSDM.ensure (field.equals (rowNode.getParentNode ()\n                           ));\n\n                           // check link children from rowNode to root\n                           JavaSDM.ensure (root.equals (rowNode.getParentNode ()\n                           ));\n\n                           // check link source from b2n to board\n                           JavaSDM.ensure (board.equals (b2n.getSource ()\n                           ));\n\n                           // check link target from b2n to root\n                           JavaSDM.ensure (root.equals (b2n.getTarget ()\n                           ));\n\n                           // create object row\n                           row = BoardGameFactory.eINSTANCE.createField();\n                           // create object f2n\n                           f2n = BoardGameToTreeIntegrationFactory.eINSTANCE.createFieldToNode();\n                           // assign attribute row\n                           row.setY (var_row_y.getValue());\n                           // assign attribute row\n                           row.setX (var_row_x.getValue());\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(f2n,field,\"target\");\n                           // create link\n                           f2n.setSource( row);\n\n                           // create link\n                           board.getFields().add(row);\n\n                           fujaba__Success = true;\n                        }\n                        catch ( JavaSDMException fujaba__InternalException )\n                        {\n                           fujaba__Success = false;\n                        }\n\n                        // story pattern collect translated elements\n                        try \n                        {\n                           fujaba__Success = false; \n\n                           // check object f2n is really bound\n                           JavaSDM.ensure ( f2n != null );\n                           // check object field is really bound\n                           JavaSDM.ensure ( field != null );\n                           // check object row is really bound\n                           JavaSDM.ensure ( row != null );\n                           // check object rowNode is really bound\n                           JavaSDM.ensure ( rowNode != null );\n                           // check object ruleResult is really bound\n                           JavaSDM.ensure ( ruleResult != null );\n                           // check isomorphic binding between objects rowNode and field\n                           JavaSDM.ensure ( !rowNode.equals (field) );\n\n                           // assign attribute ruleResult\n                           ruleResult.setSuccess (true);\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,row,\"createdElements\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,field,\"translatedElements\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,rowNode,\"translatedElements\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n,\"createdLinkElements\");\n                           fujaba__Success = true;\n                        }\n                        catch ( JavaSDMException fujaba__InternalException )\n                        {\n                           fujaba__Success = false;\n                        }\n\n                        // story pattern bookkeeping for edges\n                        try \n                        {\n                           fujaba__Success = false; \n\n                           // check object b2n is really bound\n                           JavaSDM.ensure ( b2n != null );\n                           // check object board is really bound\n                           JavaSDM.ensure ( board != null );\n                           // check object f2n is really bound\n                           JavaSDM.ensure ( f2n != null );\n                           // check object field is really bound\n                           JavaSDM.ensure ( field != null );\n                           // check object root is really bound\n                           JavaSDM.ensure ( root != null );\n                           // check object row is really bound\n                           JavaSDM.ensure ( row != null );\n                           // check object rowNode is really bound\n                           JavaSDM.ensure ( rowNode != null );\n                           // check object ruleResult is really bound\n                           JavaSDM.ensure ( ruleResult != null );\n                           // check isomorphic binding between objects board and b2n\n                           JavaSDM.ensure ( !board.equals (b2n) );\n\n                           // check isomorphic binding between objects f2n and b2n\n                           JavaSDM.ensure ( !f2n.equals (b2n) );\n\n                           // check isomorphic binding between objects field and b2n\n                           JavaSDM.ensure ( !field.equals (b2n) );\n\n                           // check isomorphic binding between objects root and b2n\n                           JavaSDM.ensure ( !root.equals (b2n) );\n\n                           // check isomorphic binding between objects row and b2n\n                           JavaSDM.ensure ( !row.equals (b2n) );\n\n                           // check isomorphic binding between objects rowNode and b2n\n                           JavaSDM.ensure ( !rowNode.equals (b2n) );\n\n                           // check isomorphic binding between objects f2n and board\n                           JavaSDM.ensure ( !f2n.equals (board) );\n\n                           // check isomorphic binding between objects field and board\n                           JavaSDM.ensure ( !field.equals (board) );\n\n                           // check isomorphic binding between objects root and board\n                           JavaSDM.ensure ( !root.equals (board) );\n\n                           // check isomorphic binding between objects row and board\n                           JavaSDM.ensure ( !row.equals (board) );\n\n                           // check isomorphic binding between objects rowNode and board\n                           JavaSDM.ensure ( !rowNode.equals (board) );\n\n                           // check isomorphic binding between objects field and f2n\n                           JavaSDM.ensure ( !field.equals (f2n) );\n\n                           // check isomorphic binding between objects root and f2n\n                           JavaSDM.ensure ( !root.equals (f2n) );\n\n                           // check isomorphic binding between objects row and f2n\n                           JavaSDM.ensure ( !row.equals (f2n) );\n\n                           // check isomorphic binding between objects rowNode and f2n\n                           JavaSDM.ensure ( !rowNode.equals (f2n) );\n\n                           // check isomorphic binding between objects root and field\n                           JavaSDM.ensure ( !root.equals (field) );\n\n                           // check isomorphic binding between objects row and field\n                           JavaSDM.ensure ( !row.equals (field) );\n\n                           // check isomorphic binding between objects rowNode and field\n                           JavaSDM.ensure ( !rowNode.equals (field) );\n\n                           // check isomorphic binding between objects row and root\n                           JavaSDM.ensure ( !row.equals (root) );\n\n                           // check isomorphic binding between objects rowNode and root\n                           JavaSDM.ensure ( !rowNode.equals (root) );\n\n                           // check isomorphic binding between objects rowNode and row\n                           JavaSDM.ensure ( !rowNode.equals (row) );\n\n                           // create object f2n__source__row\n                           f2n__source__row = TGGRuntimeFactory.eINSTANCE.createEdge();\n                           // create object root__children__rowNode\n                           root__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                           // create object f2n__target__field\n                           f2n__target__field = TGGRuntimeFactory.eINSTANCE.createEdge();\n                           // create object row__board__board\n                           row__board__board = TGGRuntimeFactory.eINSTANCE.createEdge();\n                           // create object field__children__rowNode\n                           field__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                           // assign attribute row__board__board\n                           row__board__board.setName (\"row__board__board\");\n                           // assign attribute f2n__source__row\n                           f2n__source__row.setName (\"f2n__source__row\");\n                           // assign attribute f2n__target__field\n                           f2n__target__field.setName (\"f2n__target__field\");\n                           // assign attribute field__children__rowNode\n                           field__children__rowNode.setName (\"children\");\n                           // assign attribute root__children__rowNode\n                           root__children__rowNode.setName (\"children\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n__source__row,\"createdEdges\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,root__children__rowNode,\"translatedEdges\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,f2n__target__field,\"createdEdges\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,row__board__board,\"createdEdges\");\n                           // create link\n                           org.moflon.util.eMoflonEMFUtil.addOppositeReference(ruleResult,field__children__rowNode,\"translatedEdges\");\n                           // create link\n                           f2n__source__row.setTrg( row);\n\n                           // create link\n                           row__board__board.setSrc( row);\n\n                           // create link\n                           field__children__rowNode.setTrg( rowNode);\n\n                           // create link\n                           root__children__rowNode.setTrg( rowNode);\n\n                           // create link\n                           f2n__source__row.setSrc( f2n);\n\n                           // create link\n                           f2n__target__field.setSrc( f2n);\n\n                           // create link\n                           row__board__board.setTrg( board);\n\n                           // create link\n                           f2n__target__field.setTrg( field);\n\n                           // create link\n                           field__children__rowNode.setSrc( field);\n\n                           // create link\n                           root__children__rowNode.setSrc( root);\n\n                           fujaba__Success = true;\n                        }\n                        catch ( JavaSDMException fujaba__InternalException )\n                        {\n                           fujaba__Success = false;\n                        }\n\n                        return ruleResult;\n\n                     }\n\n\n                     fujaba__Success = true;\n                  }\n                  catch ( JavaSDMException fujaba__InternalException )\n                  {\n                     fujaba__Success = false;\n                  }\n               }\n               JavaSDM.ensure (fujaba__Success);\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	PerformRuleResult perform_BWD_Node_2(Node field);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model annotation="SDM XMI='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<SDMLanguage.activities:Activity xmi:version=\"2.0\"\r\n    xmlns:xmi=\"http://www.omg.org/XMI\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\r\n    xmlns:SDMLanguage.activities=\"http://www.moflon.org/SDMLanguage.activities\" xmlns:SDMLanguage.expressions=\"http://www.moflon.org/SDMLanguage.expressions\"\r\n    xmlns:SDMLanguage.patterns.patternExpressions=\"http://www.moflon.org/SDMLanguage.patterns.patternExpressions\"\r\n    xmlns:TGGLanguage=\"http://www.moflon.org/TGGLanguage\" xmlns:TGGLanguage.csp=\"http://www.moflon.org/TGGLanguage.csp\"\r\n    xmlns:ecore=\"http://www.eclipse.org/emf/2002/Ecore\">\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"set success\"\r\n      outgoing=\"#//@ownedActivityEdge.3\" incoming=\"#//@ownedActivityEdge.6\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"true\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.0/@storyPattern/@linkVariable.0\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.0/@storyPattern/@objectVariable.0\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"prepare return value\"\r\n      outgoing=\"#//@ownedActivityEdge.1\" incoming=\"#//@ownedActivityEdge.2\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EOperation\"\r\n          name=\"performOperation\" incomingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1 #//@ownedActivityNode.1/@storyPattern/@linkVariable.0\">\r\n        <constraint>\r\n          <constraintExpression xsi:type=\"SDMLanguage.expressions:ComparisonExpression\"\r\n              operator=\"EQUAL\">\r\n            <rightExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\"\r\n                value=\"&quot;perform_BWD_Node_2&quot;\"/>\r\n            <leftExpression xsi:type=\"SDMLanguage.patterns.patternExpressions:AttributeValueExpression\"\r\n                object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\" attribute=\"http://www.eclipse.org/emf/2002/Ecore#//ENamedElement/name\"/>\r\n          </constraintExpression>\r\n        </constraint>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.1\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//RuleResult/success\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"false\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass\"\r\n          name=\"eClass\" outgoingLink=\"#//@ownedActivityNode.1/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\">\r\n        <bindingExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"this.eClass()\"/>\r\n      </objectVariable>\r\n      <linkVariable name=\"eOperations\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.2\"/>\r\n      <linkVariable name=\"performOperation\" target=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect elements to be translated\"\r\n      outgoing=\"#//@ownedActivityEdge.0\" incoming=\"#//@ownedActivityEdge.4\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.4 #//@ownedActivityNode.2/@storyPattern/@linkVariable.7\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"rowNode\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.0 #//@ownedActivityNode.2/@storyPattern/@linkVariable.3 #//@ownedActivityNode.2/@storyPattern/@linkVariable.6\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"field\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.1 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"field__children__rowNode\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.4\"\r\n          outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.3 #//@ownedActivityNode.2/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.5\" bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Edge\"\r\n          name=\"null__children__rowNode\" incomingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.7\"\r\n          outgoingLink=\"#//@ownedActivityNode.2/@storyPattern/@linkVariable.6 #//@ownedActivityNode.2/@storyPattern/@linkVariable.5\"\r\n          bindingOperator=\"CREATE\">\r\n        <attributeAssignment attribute=\"http://www.moflon.org/TGGRuntime#//Edge/name\">\r\n          <valueExpression xsi:type=\"SDMLanguage.expressions:LiteralExpression\" value=\"&quot;children&quot;\"/>\r\n        </attributeAssignment>\r\n      </objectVariable>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedElements\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.2\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"src\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.4\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"trg\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.5\" bindingOperator=\"CREATE\"/>\r\n      <linkVariable name=\"toBeTranslatedEdges\" target=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.5\"\r\n          source=\"#//@ownedActivityNode.2/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"test core match\"\r\n      outgoing=\"#//@ownedActivityEdge.4 #//@ownedActivityEdge.6\" incoming=\"#//@ownedActivityEdge.1 #//@ownedActivityEdge.5\"\r\n      forEach=\"true\">\r\n    <storyPattern xsi:type=\"TGGLanguage:TGGRule\" name=\"FieldRule\" correspondence=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.2\"\r\n        source=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.0\"\r\n        target=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"\r\n        cspSpec=\"eq(row.y, rowNode.index)eq(row.x, field.index)eq(row.x, 0)\">\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"rowNode\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0 #//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"field\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable xsi:type=\"TGGLanguage:TGGObjectVariable\" type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\"\r\n          name=\"root\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.1\"\r\n          domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" incomingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          bindingOperator=\"CREATE\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//IsAppropriateRuleResult\"\r\n          name=\"ruleResult\" outgoingLink=\"#//@ownedActivityNode.3/@storyPattern/@linkVariable.2\"\r\n          bindingState=\"BOUND\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.1\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable xsi:type=\"TGGLanguage:TGGLinkVariable\" name=\"children\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.0\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.2\" domain=\"platform:/resource/BoardGameToTreeIntegration/model/BoardGameToTreeIntegration.tgg.xmi#//@domain.1\"/>\r\n      <linkVariable name=\"matches\" target=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.3\"\r\n          source=\"#//@ownedActivityNode.3/@storyPattern/@objectVariable.4\" bindingOperator=\"CREATE\"/>\r\n      <csp>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.0 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.1\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.3\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <constraints variables=\"#//@ownedActivityNode.3/@storyPattern/@csp/@variables.2 #//@ownedActivityNode.3/@storyPattern/@csp/@variables.4\"\r\n            name=\"eq\">\r\n          <allowedAdornments value=\"BB\"/>\r\n          <allowedAdornments value=\"BF\"/>\r\n          <allowedAdornments value=\"FB\"/>\r\n        </constraints>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"y\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"rowNode\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"x\"\r\n            objectVariable=\"row\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:ImplicitParameter\" type=\"Integer\" attribute=\"index\"\r\n            objectVariable=\"field\"/>\r\n        <variables xsi:type=\"TGGLanguage.csp:Literal\" bound=\"true\" value=\"ACED000574000130\"\r\n            type=\"Integer\"/>\r\n      </csp>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StoryNode\" name=\"collect context nodes\"\r\n      outgoing=\"#//@ownedActivityEdge.5\" incoming=\"#//@ownedActivityEdge.0\">\r\n    <storyPattern>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/TGGRuntime#//Match\"\r\n          name=\"match\" outgoingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\"\r\n          bindingState=\"BOUND\"/>\r\n      <objectVariable type=\"ecore:EClass http://www.moflon.org/MocaTree#//Node\" name=\"root\"\r\n          incomingLink=\"#//@ownedActivityNode.4/@storyPattern/@linkVariable.0\" bindingState=\"BOUND\"/>\r\n      <linkVariable name=\"contextElements\" target=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.1\"\r\n          source=\"#//@ownedActivityNode.4/@storyPattern/@objectVariable.0\" bindingOperator=\"CREATE\"/>\r\n    </storyPattern>\r\n  </ownedActivityNode>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StartNode\" outgoing=\"#//@ownedActivityEdge.2\"/>\r\n  <ownedActivityNode xsi:type=\"SDMLanguage.activities:StopNode\" incoming=\"#//@ownedActivityEdge.3\">\r\n    <returnValue xsi:type=\"SDMLanguage.patterns.patternExpressions:ObjectVariableExpression\"\r\n        object=\"#//@ownedActivityNode.1/@storyPattern/@objectVariable.1\"/>\r\n  </ownedActivityNode>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.2\" target=\"#//@ownedActivityNode.4\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.1\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.5\" target=\"#//@ownedActivityNode.1\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.0\" target=\"#//@ownedActivityNode.6\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.2\"\r\n      guard=\"EACH_TIME\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.4\" target=\"#//@ownedActivityNode.3\"/>\r\n  <ownedActivityEdge source=\"#//@ownedActivityNode.3\" target=\"#//@ownedActivityNode.0\"\r\n      guard=\"END\"/>\r\n</SDMLanguage.activities:Activity>\r\n'"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel body='boolean fujaba__Success = false;\n      Object _TmpObject = null;\n      EClass eClass = null;\n      Iterator fujaba__IterEClassToPerformOperation = null;\n      EOperation performOperation = null;\n      IsAppropriateRuleResult ruleResult = null;\n      Match match = null;\n      Edge field__children__rowNode = null;\n      Edge null__children__rowNode = null;\n      Node root = null;\n      Iterator fujaba__IterFieldToRowNode = null;\n      Node rowNode = null;\n      Iterator fujaba__IterRuleResultToMatch = null;\n\n      // story pattern prepare return value\n      try \n      {\n         fujaba__Success = false; \n\n         _TmpObject = (this.eClass());\n\n         // ensure correct type and really bound of object eClass\n         JavaSDM.ensure ( _TmpObject instanceof EClass );\n         eClass = (EClass) _TmpObject;\n\n         // iterate to-many link eOperations from eClass to performOperation\n         fujaba__Success = false;\n\n         fujaba__IterEClassToPerformOperation = eClass.getEOperations().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterEClassToPerformOperation.hasNext () )\n         {\n            try\n            {\n               performOperation = (EOperation) fujaba__IterEClassToPerformOperation.next ();\n\n               // check object performOperation is really bound\n               JavaSDM.ensure ( performOperation != null );\n               // attribute condition\n               JavaSDM.ensure ( JavaSDM.stringCompare (performOperation.getName (), \"perform_BWD_Node_2\") == 0 );\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // create object ruleResult\n         ruleResult = TGGRuntimeFactory.eINSTANCE.createIsAppropriateRuleResult();\n         // assign attribute ruleResult\n         ruleResult.setSuccess (false);\n         // create link\n         ruleResult.setPerformOperation( performOperation);\n\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern test core match\n      try \n      {\n         fujaba__Success = false; \n\n         // check object field is really bound\n         JavaSDM.ensure ( field != null );\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // iterate to-many link children from field to rowNode\n         fujaba__Success = false;\n\n         fujaba__IterFieldToRowNode = new ArrayList(field.getChildren()).iterator ();\n\n         while ( fujaba__IterFieldToRowNode.hasNext () )\n         {\n            try\n            {\n               _TmpObject =  fujaba__IterFieldToRowNode.next ();\n\n               // ensure correct type and really bound of object rowNode\n               JavaSDM.ensure ( _TmpObject instanceof Node );\n               rowNode = (Node) _TmpObject;\n\n               // check isomorphic binding between objects rowNode and field\n               JavaSDM.ensure ( !rowNode.equals (field) );\n\n               // bind object\n               root = rowNode.getParentNode ();\n\n               // check object root is really bound\n               JavaSDM.ensure ( root != null );\n\n               // check isomorphic binding between objects root and field\n               JavaSDM.ensure ( !root.equals (field) );\n\n               // check isomorphic binding between objects rowNode and root\n               JavaSDM.ensure ( !rowNode.equals (root) );\n\n               // create object match\n               match = TGGRuntimeFactory.eINSTANCE.createMatch();\n               // create link\n               ruleResult.getMatches().add(match);\n\n               // story pattern collect elements to be translated\n               try \n               {\n                  fujaba__Success = false; \n\n                  // check object field is really bound\n                  JavaSDM.ensure ( field != null );\n                  // check object match is really bound\n                  JavaSDM.ensure ( match != null );\n                  // check object root is really bound\n                  JavaSDM.ensure ( root != null );\n                  // check object rowNode is really bound\n                  JavaSDM.ensure ( rowNode != null );\n                  // check isomorphic binding between objects root and field\n                  JavaSDM.ensure ( !root.equals (field) );\n\n                  // check isomorphic binding between objects rowNode and field\n                  JavaSDM.ensure ( !rowNode.equals (field) );\n\n                  // check isomorphic binding between objects rowNode and root\n                  JavaSDM.ensure ( !rowNode.equals (root) );\n\n                  // create object field__children__rowNode\n                  field__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                  // create object null__children__rowNode\n                  null__children__rowNode = TGGRuntimeFactory.eINSTANCE.createEdge();\n                  // assign attribute field__children__rowNode\n                  field__children__rowNode.setName (\"children\");\n                  // assign attribute null__children__rowNode\n                  null__children__rowNode.setName (\"children\");\n                  // create link\n                  org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,field__children__rowNode,\"toBeTranslatedEdges\");\n                  // create link\n                  org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,rowNode,\"toBeTranslatedElements\");\n                  // create link\n                  org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,field,\"toBeTranslatedElements\");\n                  // create link\n                  org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,null__children__rowNode,\"toBeTranslatedEdges\");\n                  // create link\n                  field__children__rowNode.setTrg( rowNode);\n\n                  // create link\n                  null__children__rowNode.setTrg( rowNode);\n\n                  // create link\n                  field__children__rowNode.setSrc( field);\n\n                  // create link\n                  null__children__rowNode.setSrc( root);\n\n                  fujaba__Success = true;\n               }\n               catch ( JavaSDMException fujaba__InternalException )\n               {\n                  fujaba__Success = false;\n               }\n\n               // story pattern collect context nodes\n               try \n               {\n                  fujaba__Success = false; \n\n                  // check object match is really bound\n                  JavaSDM.ensure ( match != null );\n                  // check object root is really bound\n                  JavaSDM.ensure ( root != null );\n                  // create link\n                  org.moflon.util.eMoflonEMFUtil.addOppositeReference(match,root,\"contextElements\");\n                  fujaba__Success = true;\n               }\n               catch ( JavaSDMException fujaba__InternalException )\n               {\n                  fujaba__Success = false;\n               }\n\n\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      // story pattern set success\n      try \n      {\n         fujaba__Success = false; \n\n         // check object ruleResult is really bound\n         JavaSDM.ensure ( ruleResult != null );\n         // iterate to-many link matches from ruleResult to match\n         fujaba__Success = false;\n\n         fujaba__IterRuleResultToMatch = ruleResult.getMatches().iterator ();\n\n         while ( !(fujaba__Success) && fujaba__IterRuleResultToMatch.hasNext () )\n         {\n            try\n            {\n               match = (Match) fujaba__IterRuleResultToMatch.next ();\n\n               // check object match is really bound\n               JavaSDM.ensure ( match != null );\n\n               fujaba__Success = true;\n            }\n            catch ( JavaSDMException fujaba__InternalException )\n            {\n               fujaba__Success = false;\n            }\n         }\n         JavaSDM.ensure (fujaba__Success);\n         // assign attribute ruleResult\n         ruleResult.setSuccess (true);\n         fujaba__Success = true;\n      }\n      catch ( JavaSDMException fujaba__InternalException )\n      {\n         fujaba__Success = false;\n      }\n\n      return ruleResult;'"
	 * @generated
	 */
	IsAppropriateRuleResult isAppropriate_BWD_Node_2(Node field);

} // FieldRule
